#pragma once
#include "Defines.h"

class Shader 
{
public:
	GLuint program, vertexShader, fragmentShader;
	std::vector<GLenum> states;
	
	GLint a_positionLoc;
	GLint a_colorLoc;
	GLint u_textureLoc;
	//Method
	Shader();
	GLuint LoadProgram ( GLuint vertexShader, GLuint fragmentShader ) ;
	GLuint LoadShader ( GLenum type, const char * filename ) ;
	int Init(const char* vertexShaderPath, const char* fragmentShaderPath);
	virtual ~Shader();
	void AddState(GLenum state);
	void EnableState();
	void DisableState();
};
